﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using SlideRight.Konfiguration;

namespace SlideRight
{
    public partial class Einstellungen : Form
    {
        // Konfiguration des Programms
        Konfig _konfig; 

        public Einstellungen()
        {
            InitializeComponent();

            _konfig = new Konfig(@"slideright");

            tbxOrdner.Text = _konfig.Wert("Ordner");
            nbxGeschindigkeit.Text = _konfig.Wert("Geschwindigkeit");
            tbxUntertitel.Text = _konfig.Wert("Untertitel");
        }

        #region Handler
        /// <summary>
        /// Zum Beenden und Speichern der Einstellungen
        /// </summary>
        private void hdlSchließen(object sender, EventArgs e)
        {
            
            _konfig.Speichern("Ordner", tbxOrdner.Text);
            _konfig.Speichern("Geschwindigkeit", nbxGeschindigkeit.Text);
            _konfig.Speichern("Untertitel", tbxUntertitel.Text);

            this.Close();
        }

        /// <summary>
        /// Zum auswählen des Ordners dessen Bilder gezeigt werden soll.
        /// </summary>
        private void hdlAuswählen(object sender, EventArgs e)
        {
            // Auswählen des Ordners
            ZeigeOrdner.Description = "Aus Welchem Ordner Sollen die Bilder Angezeigt werden ?";
            ZeigeOrdner.ShowDialog();
            
            // TextBox auf den Zielordner Setzen
            tbxOrdner.Text = ZeigeOrdner.SelectedPath;
        }

        /// <summary>
        /// Methode zum Abfangen von Buchstaben in der Geschwindigkeitbox
        /// </summary>
        private void nbxGeschindigkeit_KeyDown(object sender, KeyEventArgs e)
        {
            // Regular Expressions mit dem Mustern 0-9
            Regex Muster = new Regex("[0-9]+");

            // If abfrage um zu überprüfen ob die Gedrückte Taste eine nummer ist anssonsten KeyPress unterdrücken
            if (Muster.IsMatch(e.KeyCode.ToString()) || Char.IsControl((char)e.KeyCode))
            {
                e.SuppressKeyPress = false;
            }
            else
            {
                e.SuppressKeyPress = true;
            }
        }
       
        /// <summary>
        /// Handler zum Festlegen der Datei in der sich die Untertitel befinden.
        /// </summary>
        private void hdlUntertitel(object sender, EventArgs e)
        {
            DateiAuswählen.FileName = "";
            DateiAuswählen.ShowDialog();
            tbxUntertitel.Text = DateiAuswählen.FileName;
        }
        #endregion
    }
}

